
//这个actions也是个对象变量，最大的作用就是里面的Action方法 可以包含任意异步操作，这里面的方法是用来异步触发mutations里面的方法，
//actions里面自定义的函数接收一个context参数和要变化的形参，context与store实例具有相同的方法和属性，所以它可以执行context.commit(' '),
//然后也不要忘了把它也扔进Vuex.Store里面

import * as types from './mutation-types'

const actions = {
	addToCart({state, commit}, info) { //自定义触发mutations里函数的方法，context与store 实例具有相同方法和属性
		return new Promise((resolve) => {
			// 1.查看该商品是否已经添加到cartList中
			const oldInfo = state.cartList.find(item => item.iid === info.iid)

			// 2.如果oldInfo存在, 那么原来的数量加1
			if (oldInfo) {
				const index = state.cartList.indexOf(oldInfo)
				commit(types.INCREMENT_COUNT, index)
			} else {
				info.count = 1
				info.checked = true
				commit(types.ADD_TO_CART, info)
			}

			resolve()
		})
	}
}

export default actions
